home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / sprites.lha / sprites_4.0.s < prev   
Encoding:
Text File  |  1993-09-26  |  4.7 KB  |  207 lines

  1. รนรบรนรบ????????????????????????????????????????*********************************
  2. *                *
  3. *    SPRITES v.4.0        *
  4. *         by            *
  5. *    JUDAS/SAINT GROUP    *
  6. *                *
  7. * Date:28.09.93     00:50:00    *
  8. *                *
  9. * Program porusza sprite'a    *
  10. * o dowolnej wysokosci         *
  11. * i szerokosci 16 pikseli    *
  12. * w trzech kolorach na        *
  13. * krawedziach ekranu i czeka na    *
  14. * nacisniecie lewego klawisza    *
  15. * myszki.            *
  16. *                *
  17. *********************************
  18.  
  19. Custom        equ    $dff000
  20. CIAAPRA        equ    $bfe001
  21.  
  22. VHPOSR        equ    $006
  23. COP1LC        equ    $080
  24. COPJMP1        equ    $088
  25. DIWSTRT        equ    $08e
  26. DIWSTOP        equ    $090
  27. DDFSTRT        equ    $092
  28. DDFSTOP        equ    $094
  29. DMACON        equ    $096
  30. BPL1PTH        equ    $0e0
  31. BPL1PTL        equ    $0e2
  32. BPLCON0        equ    $100
  33. COLOR00        equ    $180
  34. COLOR17        equ    $1a2
  35. COLOR18        equ    $1a4
  36. COLOR19        equ    $1a6
  37. SPR0PTH        equ    $120
  38. SPR0PTL        equ    $122
  39. SPR1PTH        equ    $124
  40. SPR1PTL        equ    $126
  41. SPR2PTH        equ    $128
  42. SPR2PTL        equ    $12a
  43. SPR3PTH        equ    $12c
  44. SPR3PTL        equ    $12e
  45. SPR4PTH        equ    $130
  46. SPR4PTL        equ    $132
  47. SPR5PTH        equ    $134
  48. SPR5PTL        equ    $136
  49. SPR6PTH        equ    $138
  50. SPR6PTL        equ    $13a
  51. SPR7PTH        equ    $13c
  52. SPR7PTL        equ    $13e
  53.  
  54. ***********************************************************************
  55.         SECTION    Sprites1,code_p
  56. ;-----------------------------------------------------------------------
  57. Start:        movem.l    d0-a7,-(sp)        ;store regs
  58. ;-----------------------------------------------------------------------
  59.         move.l    #Screen,d0
  60.         move.w    d0,Screen_lo
  61.         swap    d0
  62.         move.w    d0,Screen_hi
  63. ;-----------------------------------------------------------------------
  64.         move.l    #Sprite,d0
  65.         move.w    d0,Sprite_lo
  66.         swap    d0
  67.         move.w    d0,Sprite_hi
  68. ;-----------------------------------------------------------------------
  69.         lea    Custom,a5
  70.         move.l    #CopperList,COP1LC(a5)
  71.         clr.w    COPJMP1(a5)
  72. ;-----------------------------------------------------------------------
  73.         move.w    #$8220,DMACON(a5)    ;DMA sprites on
  74. ;-----------------------------------------------------------------------
  75. SpriteMove:
  76.         bsr.w    Wait_rast
  77.                         
  78.         cmp.b    #0,OrientX
  79.         beq.b    X_End
  80.  
  81. RightMove:
  82.         cmp.b    #-1,OrientX
  83.         beq.b    LeftMove
  84.         addq.b    #1,PosX
  85.         cmp.b    #210,PosX
  86.         bne.b    X_End
  87.         move.b    #0,OrientX    ;x off
  88.         move.b    #1,OrientY    ;y down
  89.         bra.b    X_End
  90.  
  91. LeftMove:
  92.         cmp.b    #0,OrientX
  93.         beq.b    X_End    
  94.         subq.b    #1,PosX
  95.         cmp.b    #70,PosX
  96.         bne.b    X_End
  97.         move.b    #0,OrientX    ;x off
  98.         move.b    #-1,OrientY    ;y up
  99.         bra.b    Y_End
  100. X_End:
  101.         cmp.b    #0,OrientY
  102.         beq.b    Y_End
  103. DownMove:
  104.         cmp.b    #-1,OrientY
  105.         beq.b    UpMove
  106.         addq.b    #2,PosY
  107.         addq.b    #2,Height
  108.         cmp.b    #230,PosY
  109.         bne.b    Y_End
  110.         move.b    #0,OrientY    ;y off    
  111.         move.b    #-1,OrientX    ;x left
  112.         bra.b    Y_End
  113. UpMove:
  114.         cmp.b    #1,OrientY
  115.         beq.b    Y_End    
  116.         subq.b    #2,PosY
  117.         subq.b    #2,Height
  118.         cmp.b    #50,PosY
  119.         bne.b    Y_End
  120.         move.b    #0,OrientY    ;y off
  121.         move.b    #1,OrientX    ;x right
  122.         
  123. Y_End:
  124. ;-----------------------------------------------------------------------
  125. MouseWait:    btst    #6,CIAAPRA        ;wait for button
  126.         bne.w    SpriteMove
  127. ;-----------------------------------------------------------------------
  128.         movem.l    (sp)+,d0-a7        ;restore regs
  129.         moveq    #0,d0            ;all ok
  130. End:        rts
  131. ************************************************************************
  132. ;-----------------------------------------------------------------------
  133. Wait_rast:    cmp.b    #$ff,VHPOSR(a5)
  134.         bne.b    Wait_rast
  135.         rts
  136. ;-----------------------------------------------------------------------
  137. OrientX:    dc.b    1        ;0=no move
  138.                     ;1=move right
  139.                     ;-1=move left
  140. OrientY:    dc.b    0        ;0=no move
  141.                     ;1=move down
  142.                     ;-1=move up
  143. ************************************************************************
  144.         SECTION    Sprites2,data_c
  145. ;-----------------------------------------------------------------------
  146. Sprite:
  147. PosY:        dc.b    50        ;y_start
  148. PosX:        dc.b    70        ;x_start
  149. Height:        dc.b    50+15        ;y_start+height
  150.         dc.b    $00
  151.  
  152.         dc.w    $07c0,$0000
  153.         dc.w    $1ff0,$0000
  154.         dc.w    $3ff8,$0000
  155.         dc.w    $7ffc,$0000
  156.         dc.w    $7ffc,$0c60
  157.         dc.w    $f11e,$1010
  158.         dc.w    $f39e,$0000
  159.         dc.w    $fffe,$0000
  160.         dc.w    $fffe,$0000
  161.         dc.w    $e38e,$1830
  162.         dc.w    $783c,$0440
  163.         dc.w    $7c7c,$0380
  164.         dc.w    $3ff8,$0000
  165.         dc.w    $1ff0,$0000
  166.         dc.w    $07c0,$0000
  167.  
  168.         dc.w    $0000,$0000    ;end sprite data
  169.         
  170. ;-----------------------------------------------------------------------
  171. CopperList:
  172.         dc.w    DIWSTRT,$2981
  173.         dc.w    DIWSTOP,$29c1
  174.         dc.w    DDFSTRT,$0038        ;lores screen
  175.         dc.w    DDFSTOP,$00d0
  176.         dc.w    BPLCON0,$1200        ;1 plane
  177.         dc.w    COLOR00,$0000        ;ground=black
  178.         dc.w    COLOR17,$0ff0        ;red
  179.         dc.w    COLOR18,$0f00        ;green
  180.         dc.w    COLOR19,$055e        ;blue
  181.         dc.w    BPL1PTH
  182. Screen_hi:    dc.w    $0000
  183.         dc.w    BPL1PTL
  184. Screen_lo:    dc.w    $0000
  185.         dc.w    SPR0PTH
  186. Sprite_hi:    dc.w    $0000
  187.         dc.w    SPR0PTL
  188. Sprite_lo:    dc.w    $0000
  189.         dc.w    SPR1PTH,$0000        ;unused sprites off
  190.         dc.w    SPR1PTL,$0000
  191.         dc.w    SPR2PTH,$0000
  192.         dc.w    SPR2PTL,$0000
  193.         dc.w    SPR3PTH,$0000
  194.         dc.w    SPR3PTL,$0000
  195.         dc.w    SPR4PTH,$0000
  196.         dc.w    SPR4PTL,$0000
  197.         dc.w    SPR5PTH,$0000
  198.         dc.w    SPR5PTL,$0000
  199.         dc.w    SPR6PTH,$0000
  200.         dc.w    SPR6PTL,$0000
  201.         dc.w    SPR7PTH,$0000
  202.         dc.w    SPR7PTL,$0000
  203.  
  204.         dc.w    $ffff,$fffe
  205. ;-----------------------------------------------------------------------
  206. Screen:        blk.b    40*256,0
  207.